Natural language processing relates to the interactions between computers and human natural languages. In particular, natural language processing focuses of how to program computers to process varying amounts of natural language data. Natural language processing may involve speech recognition, natural language understanding, and natural language generation.